

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 6.00.0366 */
/* at Tue Dec 14 06:43:58 2010
 */
/* Compiler settings for .\PdfIrmProtector.idl:
    Oicf, W1, Zp8, env=Win32 (32b run)
    protocol : dce , ms_ext, c_ext
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __PdfIrmProtector_h__
#define __PdfIrmProtector_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __I_IrmCrypt_FWD_DEFINED__
#define __I_IrmCrypt_FWD_DEFINED__
typedef interface I_IrmCrypt I_IrmCrypt;
#endif 	/* __I_IrmCrypt_FWD_DEFINED__ */


#ifndef __I_IrmPolicyInfoRMS_FWD_DEFINED__
#define __I_IrmPolicyInfoRMS_FWD_DEFINED__
typedef interface I_IrmPolicyInfoRMS I_IrmPolicyInfoRMS;
#endif 	/* __I_IrmPolicyInfoRMS_FWD_DEFINED__ */


#ifndef __I_IrmPolicyInfo_FWD_DEFINED__
#define __I_IrmPolicyInfo_FWD_DEFINED__
typedef interface I_IrmPolicyInfo I_IrmPolicyInfo;
#endif 	/* __I_IrmPolicyInfo_FWD_DEFINED__ */


#ifndef __I_IrmProtector_FWD_DEFINED__
#define __I_IrmProtector_FWD_DEFINED__
typedef interface I_IrmProtector I_IrmProtector;
#endif 	/* __I_IrmProtector_FWD_DEFINED__ */


#ifndef __IPdfProtector_FWD_DEFINED__
#define __IPdfProtector_FWD_DEFINED__
typedef interface IPdfProtector IPdfProtector;
#endif 	/* __IPdfProtector_FWD_DEFINED__ */


#ifndef __PdfProtector_FWD_DEFINED__
#define __PdfProtector_FWD_DEFINED__

#ifdef __cplusplus
typedef class PdfProtector PdfProtector;
#else
typedef struct PdfProtector PdfProtector;
#endif /* __cplusplus */

#endif 	/* __PdfProtector_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"

#ifdef __cplusplus
extern "C"{
#endif 

void * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void * ); 

#ifndef __I_IrmCrypt_INTERFACE_DEFINED__
#define __I_IrmCrypt_INTERFACE_DEFINED__

/* interface I_IrmCrypt */
/* [object][uuid] */ 


EXTERN_C const IID IID_I_IrmCrypt;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("598F03E8-948A-425e-B7B2-2D613CEDFFEF")
    I_IrmCrypt : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HrGetBlockSize( 
            DWORD *pdwBlockSize) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrEncrypt( 
            ULONG ulOffset,
            BYTE *pbData,
            DWORD cbData,
            DWORD *pcbData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrDecrypt( 
            ULONG ulOffset,
            BYTE *pbData,
            DWORD cbData,
            DWORD *pcbData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrEncode( 
            WCHAR *wszAlgID,
            UINT uDataLen,
            BYTE *pbDecodedData,
            UINT *puEncodedStringLen,
            WCHAR *wszEncodedString) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrDecode( 
            WCHAR *wszAlgID,
            WCHAR *wszEncodedString,
            UINT *puDecodedDataLen,
            BYTE *pbDecodedData) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct I_IrmCryptVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            I_IrmCrypt * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            I_IrmCrypt * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            I_IrmCrypt * This);
        
        HRESULT ( STDMETHODCALLTYPE *HrGetBlockSize )( 
            I_IrmCrypt * This,
            DWORD *pdwBlockSize);
        
        HRESULT ( STDMETHODCALLTYPE *HrEncrypt )( 
            I_IrmCrypt * This,
            ULONG ulOffset,
            BYTE *pbData,
            DWORD cbData,
            DWORD *pcbData);
        
        HRESULT ( STDMETHODCALLTYPE *HrDecrypt )( 
            I_IrmCrypt * This,
            ULONG ulOffset,
            BYTE *pbData,
            DWORD cbData,
            DWORD *pcbData);
        
        HRESULT ( STDMETHODCALLTYPE *HrEncode )( 
            I_IrmCrypt * This,
            WCHAR *wszAlgID,
            UINT uDataLen,
            BYTE *pbDecodedData,
            UINT *puEncodedStringLen,
            WCHAR *wszEncodedString);
        
        HRESULT ( STDMETHODCALLTYPE *HrDecode )( 
            I_IrmCrypt * This,
            WCHAR *wszAlgID,
            WCHAR *wszEncodedString,
            UINT *puDecodedDataLen,
            BYTE *pbDecodedData);
        
        END_INTERFACE
    } I_IrmCryptVtbl;

    interface I_IrmCrypt
    {
        CONST_VTBL struct I_IrmCryptVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define I_IrmCrypt_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define I_IrmCrypt_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define I_IrmCrypt_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define I_IrmCrypt_HrGetBlockSize(This,pdwBlockSize)	\
    (This)->lpVtbl -> HrGetBlockSize(This,pdwBlockSize)

#define I_IrmCrypt_HrEncrypt(This,ulOffset,pbData,cbData,pcbData)	\
    (This)->lpVtbl -> HrEncrypt(This,ulOffset,pbData,cbData,pcbData)

#define I_IrmCrypt_HrDecrypt(This,ulOffset,pbData,cbData,pcbData)	\
    (This)->lpVtbl -> HrDecrypt(This,ulOffset,pbData,cbData,pcbData)

#define I_IrmCrypt_HrEncode(This,wszAlgID,uDataLen,pbDecodedData,puEncodedStringLen,wszEncodedString)	\
    (This)->lpVtbl -> HrEncode(This,wszAlgID,uDataLen,pbDecodedData,puEncodedStringLen,wszEncodedString)

#define I_IrmCrypt_HrDecode(This,wszAlgID,wszEncodedString,puDecodedDataLen,pbDecodedData)	\
    (This)->lpVtbl -> HrDecode(This,wszAlgID,wszEncodedString,puDecodedDataLen,pbDecodedData)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE I_IrmCrypt_HrGetBlockSize_Proxy( 
    I_IrmCrypt * This,
    DWORD *pdwBlockSize);


void __RPC_STUB I_IrmCrypt_HrGetBlockSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmCrypt_HrEncrypt_Proxy( 
    I_IrmCrypt * This,
    ULONG ulOffset,
    BYTE *pbData,
    DWORD cbData,
    DWORD *pcbData);


void __RPC_STUB I_IrmCrypt_HrEncrypt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmCrypt_HrDecrypt_Proxy( 
    I_IrmCrypt * This,
    ULONG ulOffset,
    BYTE *pbData,
    DWORD cbData,
    DWORD *pcbData);


void __RPC_STUB I_IrmCrypt_HrDecrypt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmCrypt_HrEncode_Proxy( 
    I_IrmCrypt * This,
    WCHAR *wszAlgID,
    UINT uDataLen,
    BYTE *pbDecodedData,
    UINT *puEncodedStringLen,
    WCHAR *wszEncodedString);


void __RPC_STUB I_IrmCrypt_HrEncode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmCrypt_HrDecode_Proxy( 
    I_IrmCrypt * This,
    WCHAR *wszAlgID,
    WCHAR *wszEncodedString,
    UINT *puDecodedDataLen,
    BYTE *pbDecodedData);


void __RPC_STUB I_IrmCrypt_HrDecode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __I_IrmCrypt_INTERFACE_DEFINED__ */


#ifndef __I_IrmPolicyInfoRMS_INTERFACE_DEFINED__
#define __I_IrmPolicyInfoRMS_INTERFACE_DEFINED__

/* interface I_IrmPolicyInfoRMS */
/* [object][uuid] */ 


EXTERN_C const IID IID_I_IrmPolicyInfoRMS;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("175EF0A4-8EB8-49ac-9049-F40EC69EC0A7")
    I_IrmPolicyInfoRMS : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HrGetICrypt( 
            I_IrmCrypt **piic) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrGetSignedIL( 
            BSTR *pbstrIL) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrGetServerId( 
            BSTR *pbstrServerId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrGetEULs( 
            BSTR *rgbstrEUL,
            BSTR *rgbstrId,
            UINT *pcbEULs) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrSetSignedIL( 
            BSTR bstrIL) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrSetServerEUL( 
            BSTR bstrEUL) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrGetRightsTemplate( 
            BSTR *pbstrRightsTemplate) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrGetListGuid( 
            BSTR *pbstrListGuid) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct I_IrmPolicyInfoRMSVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            I_IrmPolicyInfoRMS * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            I_IrmPolicyInfoRMS * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            I_IrmPolicyInfoRMS * This);
        
        HRESULT ( STDMETHODCALLTYPE *HrGetICrypt )( 
            I_IrmPolicyInfoRMS * This,
            I_IrmCrypt **piic);
        
        HRESULT ( STDMETHODCALLTYPE *HrGetSignedIL )( 
            I_IrmPolicyInfoRMS * This,
            BSTR *pbstrIL);
        
        HRESULT ( STDMETHODCALLTYPE *HrGetServerId )( 
            I_IrmPolicyInfoRMS * This,
            BSTR *pbstrServerId);
        
        HRESULT ( STDMETHODCALLTYPE *HrGetEULs )( 
            I_IrmPolicyInfoRMS * This,
            BSTR *rgbstrEUL,
            BSTR *rgbstrId,
            UINT *pcbEULs);
        
        HRESULT ( STDMETHODCALLTYPE *HrSetSignedIL )( 
            I_IrmPolicyInfoRMS * This,
            BSTR bstrIL);
        
        HRESULT ( STDMETHODCALLTYPE *HrSetServerEUL )( 
            I_IrmPolicyInfoRMS * This,
            BSTR bstrEUL);
        
        HRESULT ( STDMETHODCALLTYPE *HrGetRightsTemplate )( 
            I_IrmPolicyInfoRMS * This,
            BSTR *pbstrRightsTemplate);
        
        HRESULT ( STDMETHODCALLTYPE *HrGetListGuid )( 
            I_IrmPolicyInfoRMS * This,
            BSTR *pbstrListGuid);
        
        END_INTERFACE
    } I_IrmPolicyInfoRMSVtbl;

    interface I_IrmPolicyInfoRMS
    {
        CONST_VTBL struct I_IrmPolicyInfoRMSVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define I_IrmPolicyInfoRMS_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define I_IrmPolicyInfoRMS_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define I_IrmPolicyInfoRMS_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define I_IrmPolicyInfoRMS_HrGetICrypt(This,piic)	\
    (This)->lpVtbl -> HrGetICrypt(This,piic)

#define I_IrmPolicyInfoRMS_HrGetSignedIL(This,pbstrIL)	\
    (This)->lpVtbl -> HrGetSignedIL(This,pbstrIL)

#define I_IrmPolicyInfoRMS_HrGetServerId(This,pbstrServerId)	\
    (This)->lpVtbl -> HrGetServerId(This,pbstrServerId)

#define I_IrmPolicyInfoRMS_HrGetEULs(This,rgbstrEUL,rgbstrId,pcbEULs)	\
    (This)->lpVtbl -> HrGetEULs(This,rgbstrEUL,rgbstrId,pcbEULs)

#define I_IrmPolicyInfoRMS_HrSetSignedIL(This,bstrIL)	\
    (This)->lpVtbl -> HrSetSignedIL(This,bstrIL)

#define I_IrmPolicyInfoRMS_HrSetServerEUL(This,bstrEUL)	\
    (This)->lpVtbl -> HrSetServerEUL(This,bstrEUL)

#define I_IrmPolicyInfoRMS_HrGetRightsTemplate(This,pbstrRightsTemplate)	\
    (This)->lpVtbl -> HrGetRightsTemplate(This,pbstrRightsTemplate)

#define I_IrmPolicyInfoRMS_HrGetListGuid(This,pbstrListGuid)	\
    (This)->lpVtbl -> HrGetListGuid(This,pbstrListGuid)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE I_IrmPolicyInfoRMS_HrGetICrypt_Proxy( 
    I_IrmPolicyInfoRMS * This,
    I_IrmCrypt **piic);


void __RPC_STUB I_IrmPolicyInfoRMS_HrGetICrypt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmPolicyInfoRMS_HrGetSignedIL_Proxy( 
    I_IrmPolicyInfoRMS * This,
    BSTR *pbstrIL);


void __RPC_STUB I_IrmPolicyInfoRMS_HrGetSignedIL_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmPolicyInfoRMS_HrGetServerId_Proxy( 
    I_IrmPolicyInfoRMS * This,
    BSTR *pbstrServerId);


void __RPC_STUB I_IrmPolicyInfoRMS_HrGetServerId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmPolicyInfoRMS_HrGetEULs_Proxy( 
    I_IrmPolicyInfoRMS * This,
    BSTR *rgbstrEUL,
    BSTR *rgbstrId,
    UINT *pcbEULs);


void __RPC_STUB I_IrmPolicyInfoRMS_HrGetEULs_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmPolicyInfoRMS_HrSetSignedIL_Proxy( 
    I_IrmPolicyInfoRMS * This,
    BSTR bstrIL);


void __RPC_STUB I_IrmPolicyInfoRMS_HrSetSignedIL_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmPolicyInfoRMS_HrSetServerEUL_Proxy( 
    I_IrmPolicyInfoRMS * This,
    BSTR bstrEUL);


void __RPC_STUB I_IrmPolicyInfoRMS_HrSetServerEUL_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmPolicyInfoRMS_HrGetRightsTemplate_Proxy( 
    I_IrmPolicyInfoRMS * This,
    BSTR *pbstrRightsTemplate);


void __RPC_STUB I_IrmPolicyInfoRMS_HrGetRightsTemplate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmPolicyInfoRMS_HrGetListGuid_Proxy( 
    I_IrmPolicyInfoRMS * This,
    BSTR *pbstrListGuid);


void __RPC_STUB I_IrmPolicyInfoRMS_HrGetListGuid_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __I_IrmPolicyInfoRMS_INTERFACE_DEFINED__ */


#ifndef __I_IrmPolicyInfo_INTERFACE_DEFINED__
#define __I_IrmPolicyInfo_INTERFACE_DEFINED__

/* interface I_IrmPolicyInfo */
/* [object][uuid] */ 


EXTERN_C const IID IID_I_IrmPolicyInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2CDC48E9-DB49-47E6-8487-A2EA1FCE292F")
    I_IrmPolicyInfo : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HrGetListGuid( 
            BSTR *pbstrListGuid) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrSetListGuid( 
            BSTR bstrListGuid) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrGetRightsMask( 
            DWORD *pdwRightsMask) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrGetRequestingUser( 
            BSTR *pbstrRequestingUser,
            BOOL *pfRequestingUserIsSystem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrGetURL( 
            BSTR *pbstrURL) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrGetPolicyTitle( 
            BSTR *pbstrPolicyTitle) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrGetPolicyDescription( 
            BSTR *pbstrPolicyDescription) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrGetOfflineDays( 
            DWORD *pdwOfflineDays) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct I_IrmPolicyInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            I_IrmPolicyInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            I_IrmPolicyInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            I_IrmPolicyInfo * This);
        
        HRESULT ( STDMETHODCALLTYPE *HrGetListGuid )( 
            I_IrmPolicyInfo * This,
            BSTR *pbstrListGuid);
        
        HRESULT ( STDMETHODCALLTYPE *HrSetListGuid )( 
            I_IrmPolicyInfo * This,
            BSTR bstrListGuid);
        
        HRESULT ( STDMETHODCALLTYPE *HrGetRightsMask )( 
            I_IrmPolicyInfo * This,
            DWORD *pdwRightsMask);
        
        HRESULT ( STDMETHODCALLTYPE *HrGetRequestingUser )( 
            I_IrmPolicyInfo * This,
            BSTR *pbstrRequestingUser,
            BOOL *pfRequestingUserIsSystem);
        
        HRESULT ( STDMETHODCALLTYPE *HrGetURL )( 
            I_IrmPolicyInfo * This,
            BSTR *pbstrURL);
        
        HRESULT ( STDMETHODCALLTYPE *HrGetPolicyTitle )( 
            I_IrmPolicyInfo * This,
            BSTR *pbstrPolicyTitle);
        
        HRESULT ( STDMETHODCALLTYPE *HrGetPolicyDescription )( 
            I_IrmPolicyInfo * This,
            BSTR *pbstrPolicyDescription);
        
        HRESULT ( STDMETHODCALLTYPE *HrGetOfflineDays )( 
            I_IrmPolicyInfo * This,
            DWORD *pdwOfflineDays);
        
        END_INTERFACE
    } I_IrmPolicyInfoVtbl;

    interface I_IrmPolicyInfo
    {
        CONST_VTBL struct I_IrmPolicyInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define I_IrmPolicyInfo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define I_IrmPolicyInfo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define I_IrmPolicyInfo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define I_IrmPolicyInfo_HrGetListGuid(This,pbstrListGuid)	\
    (This)->lpVtbl -> HrGetListGuid(This,pbstrListGuid)

#define I_IrmPolicyInfo_HrSetListGuid(This,bstrListGuid)	\
    (This)->lpVtbl -> HrSetListGuid(This,bstrListGuid)

#define I_IrmPolicyInfo_HrGetRightsMask(This,pdwRightsMask)	\
    (This)->lpVtbl -> HrGetRightsMask(This,pdwRightsMask)

#define I_IrmPolicyInfo_HrGetRequestingUser(This,pbstrRequestingUser,pfRequestingUserIsSystem)	\
    (This)->lpVtbl -> HrGetRequestingUser(This,pbstrRequestingUser,pfRequestingUserIsSystem)

#define I_IrmPolicyInfo_HrGetURL(This,pbstrURL)	\
    (This)->lpVtbl -> HrGetURL(This,pbstrURL)

#define I_IrmPolicyInfo_HrGetPolicyTitle(This,pbstrPolicyTitle)	\
    (This)->lpVtbl -> HrGetPolicyTitle(This,pbstrPolicyTitle)

#define I_IrmPolicyInfo_HrGetPolicyDescription(This,pbstrPolicyDescription)	\
    (This)->lpVtbl -> HrGetPolicyDescription(This,pbstrPolicyDescription)

#define I_IrmPolicyInfo_HrGetOfflineDays(This,pdwOfflineDays)	\
    (This)->lpVtbl -> HrGetOfflineDays(This,pdwOfflineDays)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE I_IrmPolicyInfo_HrGetListGuid_Proxy( 
    I_IrmPolicyInfo * This,
    BSTR *pbstrListGuid);


void __RPC_STUB I_IrmPolicyInfo_HrGetListGuid_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmPolicyInfo_HrSetListGuid_Proxy( 
    I_IrmPolicyInfo * This,
    BSTR bstrListGuid);


void __RPC_STUB I_IrmPolicyInfo_HrSetListGuid_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmPolicyInfo_HrGetRightsMask_Proxy( 
    I_IrmPolicyInfo * This,
    DWORD *pdwRightsMask);


void __RPC_STUB I_IrmPolicyInfo_HrGetRightsMask_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmPolicyInfo_HrGetRequestingUser_Proxy( 
    I_IrmPolicyInfo * This,
    BSTR *pbstrRequestingUser,
    BOOL *pfRequestingUserIsSystem);


void __RPC_STUB I_IrmPolicyInfo_HrGetRequestingUser_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmPolicyInfo_HrGetURL_Proxy( 
    I_IrmPolicyInfo * This,
    BSTR *pbstrURL);


void __RPC_STUB I_IrmPolicyInfo_HrGetURL_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmPolicyInfo_HrGetPolicyTitle_Proxy( 
    I_IrmPolicyInfo * This,
    BSTR *pbstrPolicyTitle);


void __RPC_STUB I_IrmPolicyInfo_HrGetPolicyTitle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmPolicyInfo_HrGetPolicyDescription_Proxy( 
    I_IrmPolicyInfo * This,
    BSTR *pbstrPolicyDescription);


void __RPC_STUB I_IrmPolicyInfo_HrGetPolicyDescription_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmPolicyInfo_HrGetOfflineDays_Proxy( 
    I_IrmPolicyInfo * This,
    DWORD *pdwOfflineDays);


void __RPC_STUB I_IrmPolicyInfo_HrGetOfflineDays_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __I_IrmPolicyInfo_INTERFACE_DEFINED__ */


#ifndef __I_IrmProtector_INTERFACE_DEFINED__
#define __I_IrmProtector_INTERFACE_DEFINED__

/* interface I_IrmProtector */
/* [object][uuid] */ 


EXTERN_C const IID IID_I_IrmProtector;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("fcfbc0ac-672b-452d-80e5-40652503d96e")
    I_IrmProtector : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HrInit( 
            BSTR *pbstrProduct,
            DWORD *pdwVersion,
            BSTR *pbstrExtentions,
            BOOL *pfUseRMS) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrIsProtected( 
            ILockBytes *pilbInput,
            DWORD *pdwResult) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrSetLangId( 
            LANGID langid) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrProtectRMS( 
            ILockBytes *pilbInput,
            ILockBytes *pilbOutput,
            I_IrmPolicyInfoRMS *piid,
            DWORD *pdwStatus) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrUnprotectRMS( 
            ILockBytes *pilbInput,
            ILockBytes *pilbOutput,
            I_IrmPolicyInfoRMS *piid,
            DWORD *pdwStatus) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrProtect( 
            ILockBytes *pilbInput,
            ILockBytes *pilbOutput,
            I_IrmPolicyInfo *piid,
            DWORD *pdwStatus) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HrUnprotect( 
            ILockBytes *pilbInput,
            ILockBytes *pilbOutput,
            I_IrmPolicyInfo *piid,
            DWORD *pdwStatus) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct I_IrmProtectorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            I_IrmProtector * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            I_IrmProtector * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            I_IrmProtector * This);
        
        HRESULT ( STDMETHODCALLTYPE *HrInit )( 
            I_IrmProtector * This,
            BSTR *pbstrProduct,
            DWORD *pdwVersion,
            BSTR *pbstrExtentions,
            BOOL *pfUseRMS);
        
        HRESULT ( STDMETHODCALLTYPE *HrIsProtected )( 
            I_IrmProtector * This,
            ILockBytes *pilbInput,
            DWORD *pdwResult);
        
        HRESULT ( STDMETHODCALLTYPE *HrSetLangId )( 
            I_IrmProtector * This,
            LANGID langid);
        
        HRESULT ( STDMETHODCALLTYPE *HrProtectRMS )( 
            I_IrmProtector * This,
            ILockBytes *pilbInput,
            ILockBytes *pilbOutput,
            I_IrmPolicyInfoRMS *piid,
            DWORD *pdwStatus);
        
        HRESULT ( STDMETHODCALLTYPE *HrUnprotectRMS )( 
            I_IrmProtector * This,
            ILockBytes *pilbInput,
            ILockBytes *pilbOutput,
            I_IrmPolicyInfoRMS *piid,
            DWORD *pdwStatus);
        
        HRESULT ( STDMETHODCALLTYPE *HrProtect )( 
            I_IrmProtector * This,
            ILockBytes *pilbInput,
            ILockBytes *pilbOutput,
            I_IrmPolicyInfo *piid,
            DWORD *pdwStatus);
        
        HRESULT ( STDMETHODCALLTYPE *HrUnprotect )( 
            I_IrmProtector * This,
            ILockBytes *pilbInput,
            ILockBytes *pilbOutput,
            I_IrmPolicyInfo *piid,
            DWORD *pdwStatus);
        
        END_INTERFACE
    } I_IrmProtectorVtbl;

    interface I_IrmProtector
    {
        CONST_VTBL struct I_IrmProtectorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define I_IrmProtector_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define I_IrmProtector_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define I_IrmProtector_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define I_IrmProtector_HrInit(This,pbstrProduct,pdwVersion,pbstrExtentions,pfUseRMS)	\
    (This)->lpVtbl -> HrInit(This,pbstrProduct,pdwVersion,pbstrExtentions,pfUseRMS)

#define I_IrmProtector_HrIsProtected(This,pilbInput,pdwResult)	\
    (This)->lpVtbl -> HrIsProtected(This,pilbInput,pdwResult)

#define I_IrmProtector_HrSetLangId(This,langid)	\
    (This)->lpVtbl -> HrSetLangId(This,langid)

#define I_IrmProtector_HrProtectRMS(This,pilbInput,pilbOutput,piid,pdwStatus)	\
    (This)->lpVtbl -> HrProtectRMS(This,pilbInput,pilbOutput,piid,pdwStatus)

#define I_IrmProtector_HrUnprotectRMS(This,pilbInput,pilbOutput,piid,pdwStatus)	\
    (This)->lpVtbl -> HrUnprotectRMS(This,pilbInput,pilbOutput,piid,pdwStatus)

#define I_IrmProtector_HrProtect(This,pilbInput,pilbOutput,piid,pdwStatus)	\
    (This)->lpVtbl -> HrProtect(This,pilbInput,pilbOutput,piid,pdwStatus)

#define I_IrmProtector_HrUnprotect(This,pilbInput,pilbOutput,piid,pdwStatus)	\
    (This)->lpVtbl -> HrUnprotect(This,pilbInput,pilbOutput,piid,pdwStatus)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE I_IrmProtector_HrInit_Proxy( 
    I_IrmProtector * This,
    BSTR *pbstrProduct,
    DWORD *pdwVersion,
    BSTR *pbstrExtentions,
    BOOL *pfUseRMS);


void __RPC_STUB I_IrmProtector_HrInit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmProtector_HrIsProtected_Proxy( 
    I_IrmProtector * This,
    ILockBytes *pilbInput,
    DWORD *pdwResult);


void __RPC_STUB I_IrmProtector_HrIsProtected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmProtector_HrSetLangId_Proxy( 
    I_IrmProtector * This,
    LANGID langid);


void __RPC_STUB I_IrmProtector_HrSetLangId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmProtector_HrProtectRMS_Proxy( 
    I_IrmProtector * This,
    ILockBytes *pilbInput,
    ILockBytes *pilbOutput,
    I_IrmPolicyInfoRMS *piid,
    DWORD *pdwStatus);


void __RPC_STUB I_IrmProtector_HrProtectRMS_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmProtector_HrUnprotectRMS_Proxy( 
    I_IrmProtector * This,
    ILockBytes *pilbInput,
    ILockBytes *pilbOutput,
    I_IrmPolicyInfoRMS *piid,
    DWORD *pdwStatus);


void __RPC_STUB I_IrmProtector_HrUnprotectRMS_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmProtector_HrProtect_Proxy( 
    I_IrmProtector * This,
    ILockBytes *pilbInput,
    ILockBytes *pilbOutput,
    I_IrmPolicyInfo *piid,
    DWORD *pdwStatus);


void __RPC_STUB I_IrmProtector_HrProtect_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE I_IrmProtector_HrUnprotect_Proxy( 
    I_IrmProtector * This,
    ILockBytes *pilbInput,
    ILockBytes *pilbOutput,
    I_IrmPolicyInfo *piid,
    DWORD *pdwStatus);


void __RPC_STUB I_IrmProtector_HrUnprotect_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __I_IrmProtector_INTERFACE_DEFINED__ */


#ifndef __IPdfProtector_INTERFACE_DEFINED__
#define __IPdfProtector_INTERFACE_DEFINED__

/* interface IPdfProtector */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IPdfProtector;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9F6F6D2C-434C-49D1-ACD5-C8B1C70A38DD")
    IPdfProtector : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IPdfProtectorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IPdfProtector * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IPdfProtector * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IPdfProtector * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IPdfProtector * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IPdfProtector * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IPdfProtector * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IPdfProtector * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } IPdfProtectorVtbl;

    interface IPdfProtector
    {
        CONST_VTBL struct IPdfProtectorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IPdfProtector_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IPdfProtector_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IPdfProtector_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IPdfProtector_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IPdfProtector_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IPdfProtector_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IPdfProtector_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IPdfProtector_INTERFACE_DEFINED__ */



#ifndef __PdfProtectorLib_LIBRARY_DEFINED__
#define __PdfProtectorLib_LIBRARY_DEFINED__

/* library PdfProtectorLib */
/* [helpstring][version][uuid] */ 


EXTERN_C const IID LIBID_PdfProtectorLib;

EXTERN_C const CLSID CLSID_PdfProtector;

#ifdef __cplusplus

class DECLSPEC_UUID("D2CE39CC-DF1D-48f2-86CC-7640B307E868")
PdfProtector;
#endif
#endif /* __PdfProtectorLib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


